![]() |
PATH![]() |
This section lists the isochronous version 1.1 USBPB parameter block, and discusses things to be aware of when using the isochronous variant of the USBPB .
The isochronous version 1.1 USBPB structure is defined as:
struct USBIsocFrame {
OSStatus frStatus; /* Frame status information */
UInt16 frReqCount; /* Bytes to transfer */
UInt16 frActCount; /* Actual bytes transferred */
};
struct usbIsocBits {
USBIsocFrame *FrameList;
UInt32 NumFrames;
};
struct usbControlBits {
UInt8 BMRequestType; /* For control transactions */
UInt8 BRequest; /* Specific control request */
USBRqValue WValue; /* For control transactions, the */
/* value field of the setup packet */
USBRqIndex WIndex; /* For control transactions, the */
/* value field of the setup packet */
UInt16 reserved4; /* Reserved */
};
struct USBPB{
void *qlink;
UInt16 qType;
UInt16 pbLength; /* Length of parameter block */
UInt16 pbVersion; /* Parameter block version number */
/* kUSBIsocPBVersion for iscohronous */
/* version 1.1 USBPB */
UInt16 reserved1; /* Reserved */
UInt32 reserved2; /* Reserved */
OSStatus usbStatus; /* Completion status of the call */
USBCompletion usbCompletion; /* Completion routine */
UInt32 usbRefcon; /* For use by the completion routine */
USBReference usbReference; /* Device, pipe, interface, endpoint */
/* reference as appropriate */
void *usbBuffer; /* Pointer to the data to be sent */
/* to or received from the device */
USBCount usbReqCount; /* Length of usbBuffer */
USBCount usbActCount; /* Number of bytes sent or received */
USBFlags usbFlags; /* Miscellaneous flags */
UInt32 usbFrame; /* Start frame of transfer */
union{
usbControlBits cntl; /* usbControlBits struct */
/* used for control transactions */
usbIsocBits isoc; /* usbIsocBits frames structure */
}usb;
UInt8 usbClassType; /* Class for interfaces, */
/* transfer type for endpoints */
UInt8 usbSubclass; /* Subclass for interfaces */
UInt8 usbProtocol; /* Protocol for interfaces */
UInt8 usbOther; /* General purpose value */
UInt32 reserved6; /* Reserved */
UInt16 reserved7; /* Reserved */
UInt16 reserved8; /* Reserved */
Previous | Back Up One Level | Next |